package com.xiaoshuidi.cloud.module.contract.enums;

import com.xiaoshuidi.cloud.framework.common.exception.ErrorCode;

import java.lang.annotation.Repeatable;

/**
 * Contract 错误码枚举类
 * <br/>
 * 模块 infra 错误码区间 [1-001-000-000 ~ 1-002-000-000)<br/>
 * 模块 system 错误码区间 [1-002-000-000 ~ 1-003-000-000)<br/>
 * 模块 report 错误码区间 [1-003-000-000 ~ 1-004-000-000)<br/>
 * 模块 member 错误码区间 [1-004-000-000 ~ 1-005-000-000)<br/>
 * 模块 mp 错误码区间 [1-006-000-000 ~ 1-007-000-000)<br/>
 * 模块 pay 错误码区间 [1-007-000-000 ~ 1-008-000-000)<br/>
 * 模块 product 错误码区间 [1-008-000-000 ~ 1-009-000-000)<br/>
 * 模块 bpm 错误码区间 [1-009-000-000 ~ 1-010-000-000)<br/>
 * 模块 trade 错误码区间 [1-011-000-000 ~ 1-012-000-000)<br/>
 * 模块 promotion 错误码区间 [1-013-000-000 ~ 1-014-000-000)<br/>
 * 模块 contract 错误码区间 [1-014-000-000 ~ 1-015-000-000)<br/>
 */
public interface ErrorCodeConstants {

    ErrorCode USER_NOT_LOGIN = new ErrorCode(1014002000, "当前用户未登录，请重新登录");
    // 合同签约
    ErrorCode USER_INFORMATION_QUERY_FAILED = new ErrorCode(1014002001, "用户信息查询失败");
    ErrorCode USER_HAS_BEEN_SUCCESSFULLY_AUTHENTICATED = new ErrorCode(1014002002, "用户已认证成功");
    ErrorCode USER_AUTH_INFO_INSERT_FAILED = new ErrorCode(1014002003, "用户认证请求数据录入失败");
    ErrorCode CONTRACT_ORDERFEES_NOT_EXISTS = new ErrorCode(1014002004, "账单明细不存在");
    ErrorCode CONTRACT_RENTORDER_NOT_EXISTS = new ErrorCode(1014002005, "账单不存在");
    ErrorCode CONTRACT_DOES_NOT_EXISTS = new ErrorCode(1014002006, "合同不存在");
    ErrorCode CONTRACT_TEMPLATE_NOT_EXISTS = new ErrorCode(1014002007, "合同模板不存在");
    ErrorCode APARTMENT_NOT_REF_CONTRACT_SUBJECT = new ErrorCode(1014002008, "公寓未关联签约主体");
    ErrorCode CONTRACT_DATA_ABNORMAL = new ErrorCode(1014002009, "合同数据异常");
    ErrorCode CONTRACT_SUBJECT_NOT_EXIST = new ErrorCode(1014002010, "签约主体不存在");
    ErrorCode CONTRACT_SUBJECT_NOT_AUTHENTICATION = new ErrorCode(1014002011, "签约主体用户未认证");
    ErrorCode APARTMENT_NOT_REF_CONTRACT_TEMPLATE = new ErrorCode(1014002012, "公寓未关联合同模板");
    ErrorCode APARTMENT_NOT_EXIST = new ErrorCode(1014002013, "公寓信息查询失败");
    ErrorCode ROOM_NOT_EXIST = new ErrorCode(1014002014, "房间信息不存在");
    ErrorCode CONTRACT_TEMPLATE_FILLING_FAILED = new ErrorCode(1014002015, "合同模板填充失败");
    ErrorCode ELECTRONIC_CONTRACT_NOT_EXIST = new ErrorCode(1014002016, "电子合同不存在");
    ErrorCode ELECTRONIC_SIGNING_BALANCE_NOT_ENOUGH = new ErrorCode(1014002017, "电子签约份数不足");
    ErrorCode ELECTRONIC_CONTRACT_AUTO_SIGN_FAILED = new ErrorCode(1014002018, "电子合同自动签约失败");
    ErrorCode ALREADY_SIGN_SUCCESS = new ErrorCode(1014002019, "已经签署成功，请勿重复签署");
    ErrorCode TEMPLATE_ALREADY_BINDING_HOUSE = new ErrorCode(1014002020, "此电子合同模板已应用到房间，不允许删除");
    ErrorCode TEMPLATE_UPLOAD_PLATFORMS_FAILED = new ErrorCode(1014002021, "合同模板上传第三方平台失败");
    ErrorCode TEMPLATE_NAME_EXIST = new ErrorCode(1014002022, "合同模板名称已存在");
    ErrorCode CONTRACT_STATUS_UNABLE_SIGN = new ErrorCode(1014002023, "合同当前状态无法签约");
    ErrorCode USER_NOT_AUTH = new ErrorCode(1014002024, "用户未认证");
    ErrorCode MANUAL_SIGN_GET_ADDRESS_FAILED = new ErrorCode(1014002025, "手动签约获取签约地址失败");
    ErrorCode CONTRACT_SIGN_RESULT_DATA_ERROR = new ErrorCode(1014002026, "签约回调结果数据异常");
    ErrorCode FEE_TYPES_NOT_EXISTS = new ErrorCode(1014002027, "基本费项不存在");
    ErrorCode FEES_NOT_EXISTS = new ErrorCode(1014002028, "费项配置不存在");
    ErrorCode TEMPLATE_KEYWARDS_ASSIGNMENT_ERROR = new ErrorCode(1014002029, "模板关键字赋值异常");
    ErrorCode COMPANY_NOT_EXISTS = new ErrorCode(1014002030, "企业不存在");
    ErrorCode COMPANY_INFO_SYNC_FAILED = new ErrorCode(1014002031, "企业信息同步失败");
    ErrorCode SIGNING_SUBJECT_NOT_EXISTS = new ErrorCode(1014002032, "签约主体不存在");
    ErrorCode SIGNING_SUBJECT_EXIST_REL_APARTMENT = new ErrorCode(1014002033, "签约主体已关联房源，不允许删除");

    ErrorCode CONTRACT_TABLET_SIGN_RESULT_DATA_ERROR = new ErrorCode(1014002034, "手写板签约回调结果数据异常");
    ErrorCode READJUST_AMOUNT_RESULT_DATA_ERROR = new ErrorCode(1014002035, "冲调金额结果不能小于0");


    ErrorCode SIGNING_SUBJECT_ADD_FAILED = new ErrorCode(1014002035, "签约主体新增失败，获取实名地址异常");
    ErrorCode CONTRACT_TEMPLATE_LACK_REQUIRED_PARAM = new ErrorCode(1014002036, "合同模板缺少必填埋点参数");
    ErrorCode CONTRACT_SUBJECT_NOT_AUTH_AUTO_SIGN = new ErrorCode(1014002037, "签约主体未授权自动签约");
    ErrorCode ELECTRONIC_CONTRACT_NOT_LAUNCH = new ErrorCode(1014002038, "合同尚未发起签约");
    ErrorCode SUBJECT_NOT_OPEN_ONLINE_SIGN = new ErrorCode(1014002039, "合同签约主体未开启线上签约");
    ErrorCode CONTRACT_STATUS_UNABLE_LAUNCH_SIGN = new ErrorCode(1014002040, "合同当前状态无法发起签约");
    ErrorCode THE_LISTINGS_MUST_BE_CONSISTENT = new ErrorCode(1014002041, "房间来源不是同一个公寓");
    ErrorCode SECURITY_PROTOCOL_CALLBACK_ROOMMATE_NOT_FOUND = new ErrorCode(1014002042, "安全协议签署回调，未查询到同住人信息");
    ErrorCode ROOMS_ARE_NOT_PRICED = new ErrorCode(1014002043, "存在房间没有定价");
    ErrorCode RENT_CONTRACT_TEMPLATE_ROOM_TYPE_NOT_NULL = new ErrorCode(1014002044, "租客合同模板房源类型不能为空");
    // 合同签约 END

    // 合同 1014001
    ErrorCode ENDTIME_BEFORE_STARTTIME = new ErrorCode(1014001001, "合同结束时间大于合同开始时间");
    ErrorCode RENEWAL_CONTRACT_FROM_ID = new ErrorCode(1014001002, "续租来源合同id不能为空");
    ErrorCode CONTRACT_NO_RENEWAL = new ErrorCode(1014001003, "当前合同不可以续租");
    ErrorCode CONTRACT_PASS_REQUIRE_DAY = new ErrorCode(1014001004, "合同到期大于15天，不能办理续租业务");
    ErrorCode NOT_PAY_BILL = new ErrorCode(1014001005, "合同存在未支付的账单");
    ErrorCode EXTRAS_DATA_NOT_EXISTS = new ErrorCode(1014001006, "合同杂费不存在");
    ErrorCode APARTMENT_ALREADY_REF_OTHER_SUBJECT = new ErrorCode(1014001007, "所选房源已关联其他主体");
    ErrorCode NOT_ACTIVE_COULD_NOT_OPEN_SWITCH = new ErrorCode(1014001008, "非已生效主体无法开启线上签约");
    ErrorCode CUSTOMER_COMPANY_NOT_EXISTS = new ErrorCode(1014001009, "企业客户不存在");
    ErrorCode ROOM_ALREADY_REF_OTHER_TEMPLATE = new ErrorCode(1014001010, "所选门店已关联其他合同模板");
    ErrorCode CONTRACT_NOT_EXISTS = new ErrorCode(1014001011, "租客合同不存在");
    ErrorCode NOT_PAY = new ErrorCode(1014001012, "存在未支付账单");
    ErrorCode APPROVAL_CONFIG_NOT_EXISTS = new ErrorCode(1014001015, "合同账单审批配置不存在");
    ErrorCode CONTRACT_NO_EXCHANGE = new ErrorCode(1014001016, "当前合同不可以换房");
    ErrorCode ROOM_ORDER_NOT_EXISTS = new ErrorCode(1014001019, "账单不存在");
    ErrorCode ROOM_ORDER_ALREADY_PAID = new ErrorCode(1014001020, "账单已支付");
    ErrorCode ROOM_STATUS_NOT_ALLOW_EVICTION = new ErrorCode(1014001021, "当前房间状态无法操作退租");
    ErrorCode EXIST_CONTRACT_NO_END = new ErrorCode(1014001027, "存在未结束的合同");
    ErrorCode CUSTOMER_COMPANY_DOCUMENT_LIMIT = new ErrorCode(1014001028, "企业客户上传证件数量限制最多3张");
    ErrorCode CUSTOMER_COMPANY_EXIST_REF_CONTRACT = new ErrorCode(1014001029, "企业客户存在关联合同，无法删除");
    ErrorCode BOOKING_NO_PAYMENT = new ErrorCode(1014001030, "请先支付预定金");
    ErrorCode CUSTOMER_COMPANY_NAME_REPEAT = new ErrorCode(1014001031, "企业名称重复");
    ErrorCode CONTRACT_NO_DELIVERY = new ErrorCode(1014001032, "当前合同不可以交房");
    ErrorCode NO_ROOMS_AVAILABLE_FOR_RENEWAL = new ErrorCode(1014001033, "没有房间可以续租");
    ErrorCode RECEIVABLES_AMOUNT_INCONSISTENT = new ErrorCode(1014001034, "应收款金额不一致");
    ErrorCode REFUNDABLE_AMOUNT_INCONSISTENT = new ErrorCode(1014001035, "应退款金额不一致");
    ErrorCode AMOUNT_INCONSISTENT = new ErrorCode(1014001035, "金额不一致");
    ErrorCode REFUND = new ErrorCode(1014001036, "当前合同不可以退租");
    ErrorCode STAY_NOT_EXISTS = new ErrorCode(1014001037, "交房清单记录不存在");
    ErrorCode CONTRACT_STAY_EXISTS = new ErrorCode(1014001038, "合同已存在交房清单");
    ErrorCode CREATE_STAY_MISS_CONTRACT_ID = new ErrorCode(1014001038, "新增交房清单缺少合同编号参数");
    ErrorCode CONTRACT_STATUS_CANNOT_CREATE_STAY = new ErrorCode(1014001039, "合同当前状态无法添加入住清单");
    ErrorCode COMPANY_CONTRACT_NOT_EXISTS = new ErrorCode(1014001040, "企业合同不存在");
    ErrorCode CONTRACT_CANNOT_MODIFY = new ErrorCode(1014001041, "合同不可编辑");
    ErrorCode CONTRACT_CONCURRENT_MODIFY = new ErrorCode(1014001042, "请勿重复提交");
    ErrorCode ONLY_ONE_HOUSE_NON_RENEWAL = new ErrorCode(1014001043, "企业合同只剩一间房间，无法续租");
    ErrorCode ENTERPRISE_CONTRACTS_DO_NOT_EXIST = new ErrorCode(1014001044, "企业合同不存在");
    ErrorCode RENT_ORDER_CANNOT_PAY = new ErrorCode(1014001045, "账单审核中, 不可支付");
    ErrorCode THE_ORIGINAL_TENANT_CONTRACT_DOES_NOT_EXIST = new ErrorCode(1014001046, "原租客合同不存在，无法更改房态");
    ErrorCode NON_REPEATABLE_RENTING = new ErrorCode(1014001047, "不可重复退租！");
    ErrorCode MEMBER_INCONSISTENT = new ErrorCode(1014001048, "合同创建用户和预定用户不一致");
    ErrorCode BOOKING = new ErrorCode(1014001049, "不存在预定");
    ErrorCode BOOKING_AMOUNT = new ErrorCode(1014001049, "预定金额不正确");
    ErrorCode ORDER_AMOUNT = new ErrorCode(1014001050, "优惠后,账单的金额不能小于零");

    ErrorCode MONTH_RENT_AMOUNT = new ErrorCode(1014001051, "请输入租金金额");
    ErrorCode ONLY_RENEW_THE_CHECKED_IN_CONTRACT = new ErrorCode(1014001052, "仅能续租已入住合同");
    ErrorCode CONTRACT_NO_RENEWAL_BATCH = new ErrorCode(1014001053, "存在不可续租合同");
    ErrorCode RENTED_ROOMS_CANNOT_EXCEED_ONE_HUNDRED = new ErrorCode(1014001053, "存在不可续租合同");
    ErrorCode DISPERSE_ROOM_OWNER_CONTRACT_FAILURE = new ErrorCode(1014001054, "业主合同非有效状态，无法签约合同");
    ErrorCode EXIST_PAID_ORDER_CANNOT_CANCEL = new ErrorCode(1014001055, "存在已支付账单或待财务勾核账单，无法取消");
    ErrorCode CONTRACT_CURRENT_STATUS_CANNOT_CANCEL = new ErrorCode(1014001056, "合同当前状态无法取消");
    ErrorCode DIRTY_ROOM_UNABLE_CHECK_IN = new ErrorCode(1014001057, "脏房无法办理入住");

    //审批
    ErrorCode APPROVAL_ROOM_NOT_EXISTS = new ErrorCode(1014002001, "房间为配置对应审批");
    ErrorCode APPROVAL_NOT_EXISTS = new ErrorCode(1014002002, "审批流不存在");
    ErrorCode PLEASE_SET_APPROVAL = new ErrorCode(1014002003, "请关联审批流!");
    ErrorCode APPROVAL_ROOM_CONFIGURED = new ErrorCode(1014002004, "有门店已经在其他审批流配置了");
    //同住人
    ErrorCode ROOMMATE_NOT_EXISTS = new ErrorCode(1014003002, "合同同住人数据不存在");
    ErrorCode ROOMMATE_IMPORT_LIST_IS_EMPTY = new ErrorCode(1014003003, "合同同住人导入列表为空");
    ErrorCode MEMBER_NOT_EXISTS = new ErrorCode(1014003004, "用户不存在");
    ErrorCode ROOMMATE_PHONE_FORMAT_ERROR = new ErrorCode(1014003005, "合同同住人手机号格式错误");
    ErrorCode ROOMMATE_USERNAME_EXISTS = new ErrorCode(1014003006, "合同同住人已存在");
    ErrorCode ACTIVE_ASSOCIATION_NOT_EXISTS = new ErrorCode(1014003007, "业务和审批流关联不存在");
    ErrorCode ROOMMATE_USERNAME_CANNOT_CHECK_OUT_AT_THIS_TIME = new ErrorCode(1014003008, "主住人当前不可退房");
    ErrorCode THE_CURRENT_DORMITORY_HAS_A_DORMITORY_LEADER = new ErrorCode(1014003009, "请先转让寝室长！再退房");
    ErrorCode TENANT_WALLET_ACQUISITION_FAILED = new ErrorCode(1014003010, "租客钱包获取失败");
    ErrorCode UTILITY_BILLS_ARE_OUTSTANDING = new ErrorCode(1014003011, "水电费未结清，不能迁出！");
    ErrorCode ONLY_ONE_ROOM_HEAD = new ErrorCode(1014003012, "不允许一间房间导入两个寝室长");
    ErrorCode ROOM_NO_LEADER = new ErrorCode(1014003013, "房间没有寝室长");
    ErrorCode ROOM_NO_CONTRACT = new ErrorCode(1014003014, "该房间不存在合同，无法添加杂费");
    ErrorCode ROOM_HAS_SAME_PHONE = new ErrorCode(1014003015, "不允许相同手机号登记在一个房间里");
    ErrorCode ENTERPRISE_CUSTOMER_DISABLED = new ErrorCode(1014003016, "企业客户已禁用");
    ErrorCode ROOMMATE_LEADER_CHANGE_ERROR = new ErrorCode(1014003017, "只有一个人入住不允许变更寝室长");
    ErrorCode HOUSE_WITHDRAWAL_NOT_PROCESSED = new ErrorCode(1014003018, "当前人员存在未处理房屋提现");

    //费项配置
    ErrorCode FEES_EXISTS = new ErrorCode(1014004001, "费项已存在");


    // 业主合同
    ErrorCode OWNER_CONTRACT_NOT_REF_ROOM = new ErrorCode(1014005000, "业主合同未关联房源");
    ErrorCode HOUSE_OWNER_NOT_EXISTS = new ErrorCode(1014005001, "业主合同不存在");
    ErrorCode ROOM_ALREADY_REF_OTHER_OWNER_CONTRACT = new ErrorCode(1014005002, "房间已关联其他业主合同");
    ErrorCode HOUSE_OWNER_CONTRACT_REF_ROOM_NOT_FOUND = new ErrorCode(1014005003, "未查询到业主合同关联的房间");
    ErrorCode HOUSE_OWNER_CONTRACT_EXIST_ACTIVE_CONTRACT = new ErrorCode(1014005004, "业主合同存在有效合同无法操作");
    ErrorCode OWNER_EVICTION_CONTRACT_EXIST = new ErrorCode(1014005005, "业主合同退租申请已存在");
    ErrorCode OWNER_RENEWAL_CONTRACT_LACK_REQUIRED_PARAM = new ErrorCode(1014005006, "业主合同续租缺少必填参数");
    ErrorCode UPDATE_RENEWAL_OWNER_CONTRACT_MISS_PARAM = new ErrorCode(1014005007, "更新业主续租合同状态，缺少必填参数");
    ErrorCode RENEWAL_OWNER_CONTRACT_START_TIME_NOT_MODIFIABLE = new ErrorCode(1014005008, "新增业主续租合同开始时间不可修改");
    ErrorCode RENEWAL_OWNER_CONTRACT_DEPOSIT_NOT_MODIFIABLE = new ErrorCode(1014005009, "新增业主续租合同押金不可修改");
    ErrorCode OWNER_STATUS_UNABLE_TO_OPERATE = new ErrorCode(1014005010, "业主合同当前状态无法操作");
    ErrorCode OWNER_CONTRACT_EVICTION_HANDLE_DEPOSIT_ERROR = new ErrorCode(1014005011, "业主退租押金处理金额不合适");
    ErrorCode OWNER_RENEWAL_CONTRACT_EXIST = new ErrorCode(1014005012, "存在业主续租合同");
    ErrorCode ONLY_CANCEL_NOT_ACTIVE_OWNER_RENEWAL_CONTRACT = new ErrorCode(1014005013, "仅业主续租合同可取消");
    ErrorCode OWNER_RENEWAL_CONTRACT_STATUS_UNABLE_CANCEL = new ErrorCode(1014005014, "业主续租合同当前状态无法取消");
    ErrorCode OWNER_RENEWAL_CONTRACT_ORDER_PAID = new ErrorCode(1014005015, "业主续租合同账单已支付，无法取消");
    ErrorCode CONTRACT_APPLY_NOT_EXIST = new ErrorCode(1014005016, "合同申请不存在");
    ErrorCode CONTRACT_APPLY_NOT_APPLY = new ErrorCode(1014005017, "该合同不可发起申请");
    ErrorCode CONTRACT_APPLY_NOT_UPDATE = new ErrorCode(1014005018, "该合同申请不可修改申请");
    ErrorCode CONTRACT_APPLY_NOT_REVOKE = new ErrorCode(1014005019, "该合同申请不可撤销申请");
    ErrorCode CONTRACT_APPLY_EXIST = new ErrorCode(1014005020, "该合同已存在待处理申请");
    ErrorCode OWNER_ORDER_STATUS_UNABLE_PAY = new ErrorCode(1014005021, "业主账单当前状态无法支付");
    ErrorCode GET_OWNER_MEMBER_NUMBER_FAILED = new ErrorCode(1014005022, "获取业主会员编号失败");
    ErrorCode CONTRACT_OWNER_RENEWAL_DEPOSIT_CARRY_FORWARD_ERROR = new ErrorCode(1014005028, "业主续租押金结转异常");

    ErrorCode CONTRACT_FILINGS_ERROR = new ErrorCode(1014005023, "合同备案失败");
    ErrorCode CONTRACT_FILE_UPLOAD_ERROR = new ErrorCode(1014005024, "合同文件不能大于2M");
    ErrorCode CONTRACT_FILINGS_UPLOAD_ERROR = new ErrorCode(1014005025, "文件上传备案信息错误");
    ErrorCode FILE_UPLOAD_ERROR = new ErrorCode(1014005027, "文件上传异常");


    //excel导入
    ErrorCode PARAM_VALIDATE_ERROR = new ErrorCode(1014006001, "文件导入参数校验失败");
    ErrorCode NUMBER_FORMAT_ERROR = new ErrorCode(1014006002, "数字格式化异常");


    //结算单  1014007
    ErrorCode SETTLEMENT_SETTLED = new ErrorCode(1014007001, "您选的结算单,已经存在已结算数据");
    ErrorCode SETTLEMENT_SETTLED_NOT_EXIST = new ErrorCode(1014007001, "清算单不存在");
    ErrorCode SETTLEMENT_EXIST_UNCLEARABLE = new ErrorCode(1014007002, "存在不可清算的结算单");

    //业主账单进入应付款审批提示 1014008
    ErrorCode OWNER_ORDER_ABSENT = new ErrorCode(1014008001, "业主账单不存在");
    ErrorCode OWNER_ORDER_ERROR = new ErrorCode(1014008002, "仅能重新提交驳回业主账单");
    ErrorCode OWNER_ORDER_IN_REVIEW_ERROR = new ErrorCode(1014008003, "待审核的业主订单无法进行操作");
    ErrorCode OWNER_ORDER_PAYMENT_ERROR = new ErrorCode(1014008004, "应付款中业主订单无法进行操作");
    ErrorCode EXIST_UNPAID_OWNER_ORDER = new ErrorCode(1014008005, "存在未支付的业主账单，无法续租");
    ErrorCode EXIST_CONTRACT_TAX_TATE_ORDER = new ErrorCode(1014008006, "部门配置已存在,无法新增");
}
